<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page
	import="org.jfree.chart.ChartFactory,org.jfree.chart.ChartPanel,org.jfree.chart.JFreeChart"%>
<%@ page
	import="org.jfree.chart.axis.CategoryAxis,org.jfree.chart.axis.CategoryLabelPositions,org.jfree.chart.axis.NumberAxis,org.jfree.chart.plot.CategoryPlot"%>
<%@ page
	import="org.jfree.chart.plot.PlotOrientation,org.jfree.chart.renderer.category.BarRenderer,org.jfree.data.category.CategoryDataset"%>
<%@ page
	import="org.jfree.data.category.DefaultCategoryDataset,org.jfree.ui.ApplicationFrame,org.jfree.ui.RefineryUtilities,java.awt.*"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>My JSP 'BarChart.jsp' starting page</title>

		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

	</head>

	<body>
		<br>
		<%
			// row keys... 
			String series1 = "First";
			String series2 = "Second";
			String series3 = "Third";

			// column keys...
			String category1 = "Category 1";
			String category2 = "Category 2";
			String category3 = "Category 3";
			String category4 = "Category 4";
			String category5 = "Category 5";

			// create the dataset... 
			DefaultCategoryDataset dataset = new DefaultCategoryDataset();

			dataset.addValue(1.0, series1, category1);
			dataset.addValue(4.0, series1, category2);
			dataset.addValue(3.0, series1, category3);
			dataset.addValue(5.0, series1, category4);
			dataset.addValue(5.0, series1, category5);

			dataset.addValue(5.0, series2, category1);
			dataset.addValue(7.0, series2, category2);
			dataset.addValue(6.0, series2, category3);
			dataset.addValue(8.0, series2, category4);
			dataset.addValue(4.0, series2, category5);

			dataset.addValue(4.0, series3, category1);
			dataset.addValue(3.0, series3, category2);
			dataset.addValue(2.0, series3, category3);
			dataset.addValue(3.0, series3, category4);
			dataset.addValue(6.0, series3, category5);

			JFreeChart chart = ChartFactory.createBarChart("Bar Chart Demo 1", // chart title
					"Category", // domain axis label
					"Value", // range axis label
					dataset, // data
					PlotOrientation.VERTICAL, // orientation
					true, // include legend
					true, // tooltips?
					false // URLs?
					);

			chart.setBackgroundPaint(Color.white);

			CategoryPlot plot = (CategoryPlot) chart.getPlot();

			NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
			rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

			BarRenderer renderer = (BarRenderer) plot.getRenderer();
			renderer.setDrawBarOutline(false);

			// set up gradient paints for series... 
			GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f,
					0.0f, new Color(0, 0, 64));
			GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green,
					0.0f, 0.0f, new Color(0, 64, 0));
			GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,
					0.0f, new Color(64, 0, 0));
			renderer.setSeriesPaint(0, gp0);
			renderer.setSeriesPaint(1, gp1);
			renderer.setSeriesPaint(2, gp2);

			CategoryAxis domainAxis = plot.getDomainAxis();
			domainAxis.setCategoryLabelPositions(CategoryLabelPositions
					.createUpRotationLabelPositions(Math.PI / 6.0));

			String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,
					null, session);

			String graphURL = request.getContextPath()
					+ "/servlet/DisplayChart?filename=" + filename;
		%>
		<br>
		<P ALIGN="CENTER">
			<img src="<%=graphURL%>" width=500 height=300 border=0
				>
		</P>
	</body>
</html>
